import 'package:flutter/material.dart';

class StateApp extends StatefulWidget {
  const StateApp({super.key});

// 1.创建组件时调用
  @override
  State<StateApp> createState() {
    debugPrint('StateApp createState');
    return _StateAppState();
  }
}

class _StateAppState extends State<StateApp> {
  int counter = 0;

  // 2. 组件被初始化时调用
  // 一般用于: 对组件变量赋值, 请求网络数据, 更新状态
  @override
  void initState() {
    debugPrint('initState');
    super.initState();
  }

  // 3. 状态组件的依赖项发生变化时调用
  // 只会被执行1次
  @override
  void didChangeDependencies() {
    debugPrint('didChangeDependencies');
    super.didChangeDependencies();
  }

  /// 5. 组件即将销毁时自动调用的
  @override
  void deactivate() {
    debugPrint('deactivate');
    super.deactivate();
  }

  /// 6. 组件销毁时自动调用的
  @override
  void dispose() {
    debugPrint('dispose');
    super.dispose();
  }

// 4. 组件被重新构建/状态更新时调用
// 会调用多次
  @override
  Widget build(BuildContext context) {
    return Center(
      child: TextButton(
          onPressed: () {
            setState(() {
              counter++;
            });
          },
          child: Text('被点击了$counter次')),
    );
  }
}
